home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-05-10 | 37.3 KB | 1,340 lines |
- ; **********************************************************
- ; **** ****
- ; **** Programme: Affiche la date et l'heure ****
- ; **** plus la fête du jour et de demain ****
- ; **** ****
- ; **********************************************************
- ; **** ****
- ; **** Auteur: Christian KASPAR ****
- ; **** ****
- ; **** Date: 09 Août 1993 ****
- ; **** ****
- ; **** Version:1.01 ****
- ; **** ****
- ; **** Source pour assembleur Seka ****
- ; **** ****
- ; **********************************************************
- ; **** ****
- ; **** Le programme se lance depuis la fenêtre CLI et ****
- ; **** affiche la date et l'heure en français, ainsi ****
- ; **** que la fête du jour et du jour suivant. ****
- ; **** 664 prénoms sont répertoriés, plus quelques ****
- ; **** fêtes particulières (1er Mai, fêtes religieuses) ****
- ; **** ****
- ; **** Détail amusant, ce programme ne fonctionnera ****
- ; **** parfaitement "que" jusqu'au 19 Janvier 2046 ****
- ; **** 3 heures 14 minutes et 7 secondes... ****
- ; **** Cela provient d'un dépassement de la valeur 2^31 ****
- ; **** pour les secondes du système (Sys_sec) ****
- ; **** Dès lors l'instruction CMP.L D3,D0 qui se trouve ****
- ; **** dans NextAn: considère le chiffre comme étant ****
- ; **** négatif, ce qui se traduit par des résultats ****
- ; **** bizarres... (mais pas de Software Failure) ****
- ; **** Je ne pense pas qu'il soit utile de "fixer" ce ****
- ; **** petit bug, mais si le coeur vous en dit... ****
- ; **** ****
- ; **** A noter que je n'ai trouvé aucun programme ****
- ; **** du style DATE ou TODAY qui fonctionne ****
- ; **** correctement après la date fatidique. Seul le ****
- ; **** TIME des préférences gère parfaitement le ****
- ; **** problème (encore heureux!). ****
- ; **** ****
- ; **********************************************************
- ; **** ****
- ; **** Pour pouvoir lancer le programme depuis le CLI ****
- ; **** il faut remplacer les ILLEGAL par RTS, modifier ****
- ; **** les paramètres de la fenêtre (voir listing) et ****
- ; **** supprimer la commande PAUSE (facultatif) avant ****
- ; **** de compiler la source. ****
- ; **** ****
- ; **********************************************************
- ; **** ****
- ; **** La source (1340 lignes) et l'exécutable de ce ****
- ; **** programme sont librement distribuables ****
- ; **** SOUS LEUR FORME ORIGINELLE UNIQUEMENT ****
- ; **** Ils ne peuvent être vendus sauf en tant que ****
- ; **** partie d'un disque du Domaine Publique. ****
- ; **** Toute modification du code (ajout de messages ****
- ; **** dans les données fêtes) doit se faire sur une ****
- ; **** copie du programme source et servir dans un but ****
- ; **** purement individuel. ****
- ; **** ****
- ; **********************************************************
- ; **** ****
- ; **** Si vous aimez ce programme, vous pouvez penser ****
- ; **** à l'auteur en m'envoyant une carte postale pour ****
- ; **** ma collection (si possible représentant un ****
- ; **** coucher de soleil). Ça serait sympa... ****
- ; **** ****
- ; **** Pour toute suggestion, erreur décélée, etc... ****
- ; **** n'hésitez pas à m'écrire. ****
- ; **** ****
- ; **** ****
- ; **** Christian KASPAR ****
- ; **** 6bis, Route de Soultz ****
- ; **** 68270 WITTENHEIM ****
- ; **** FRANCE ****
- ; **** ****
- ; **********************************************************
-
- Execbase = 4
- CurrentTime = -84
- Openlibrary = -552
- CloseLibrary = -414
- Delay = -$C6
- Open = -$1E
- Close = -$24
- Write = -$30
- Mode_Newfile = 1006
-
- ; *****************************
- ; **** ****
- ; **** Programme Principal ****
- ; **** ****
- ; *****************************
-
- START:
-
- JSR OpenIntLib(pc)
- CMP.L #0,D0
- BEQ.L Erreur
- MOVE.L D0,IntBase
- JSR GetCurrentTime(pc)
- JSR Calculan(pc)
- JSR OpenDos(pc) ; Saute sous-routine ouvrir Dos
- CMP.L #0,D0 ; Librairie bien ouverte?
- BEQ.L CloseIntLib ; Sinon -> aller ... (et finir)
- MOVE.L D0,Dosbase ; Se rappeler adresse de Dos
- JSR OpenWin(pc) ; Saute sous-routine ouvrir fenet.
- CMP.L #0,D0 ; Controle d'ouverture
- BEQ.L CloseDos ; Si erreur -> finir programme
- MOVE.L D0,WinHandle ; Se rappeler adresse fenetre
- JSR EcritDateHeure(pc)
- JSR Ecrit_aujourd(pc)
- JSR Affichefete(pc)
- JSR Retour_Chariot(pc)
- JSR Ecrit_demain(pc)
- JSR Jour_suivant(pc)
- JSR Affichefete(pc)
- JSR Retour_chariot(pc)
- JSR Pause(pc)
- JMP CloseWin(pc)
-
- ; **** Fin du programme principal ****
-
- ; **** Ouverture Intuition.Library ****
-
- OPENINTLIB:
-
- MOVE.L Execbase,A6
- MOVE.L #0,D0
- MOVE.L #IntName,A1
- JSR OpenLibrary(A6)
- RTS
-
- ; **** Lire le temps en secondes ****
-
- GETCURRENTTIME:
-
- LEA Sys_Sec(pc),A0
- LEA Sys_microSec(pc),A1
- MOVE.L IntBase(pc),A6
- JSR CurrentTime(A6)
- RTS
-
- ; **** Calcul de l'année actuelle ****
-
- CalculAn:
-
- MOVE.L sys_sec(pc),D0 ; secondes système dans D0
- MOVE.L #1978,D1 ; année de départ = 1978
-
- Bissex:
-
- MOVE.L D1,D2 ; Copier D1 dans D2
- DIVU #4,D2 ; Diviser D2 par 4
- ANDI.L #$FFFF0000,D2 ; ET logique => on garde les bits de poids
- ; fort (les chiffres après la virgule)
- ; Si il reste zéro, l'année est divisible
- ; par quatre et donc bissextile
- BNE.S PasBissex ; Si pas zéro aller à PasBissex
-
- OuiBissex:
-
- MOVE.L #[366*24*3600],D3
- BRA.S SuiteAn
-
- PasBissex:
-
- MOVE.L #[365*24*3600],D3
-
- SuiteAn:
-
- CMP.L D3,D0
- BLT.S PasAutreAn
- SUB.L D3,D0
- ADDQ.L #1,D1
- BRA.S Bissex
-
- PasAutreAn:
-
- MOVE.W D1,Annee ; Année actuelle stockée dans Année
-
- HeuresMinutes:
-
- DIVU #3600,D0 ; Nombre d'heures de l'année en cours
- SWAP D0 ; Nombre de minutes de l'année=mot haut
- CLR.L D1
- MOVE.W D0,D1 ; Nombres de minutes dans D1
- CLR.W D0
- SWAP D0 ; Nombres d'heures dans D0
-
- JDL:
- DIVU #24,D0
- ADDQ.W #1,D0
- MOVE.W D0,Quantieme ; le D0 ième jour de l'année
- CLR.W D0
- SWAP D0
- MOVE.B d0,Heures
- DIVU #60,D1
- MOVE.B D1,Minutes
- SWAP D1
- MOVE.B D1,Secondes
-
- ; **** Calculer le mois ****
-
- ; **** Est-on atuellement dans une année bisextile? ****
-
- CLR.L D0
- MOVE.W Annee(pc),D0
- DIVU #4,D0
- ANDI.L #$FFFF0000,D0
- BNE.s Normal
-
- ; **** Si oui, ajouter 1 au mois de Février ****
-
- LEA Jours_du_Mois(pc),A0
- ADDQ.W #1,2(A0) ; 2 car il s'agit de MOTS !!!
-
- ; **** Année non bisextile ****
-
- Normal:
-
- CLR.L D0
- MOVE.W Quantieme(pc),D0 ; Jour de l'année dans D0
- LEA Jours_du_Mois(pc),A0
- MOVE.B #01,D1 ; On commence au moins au mois 1
-
- Bouclemois:
-
- CMP.W (A0),D0
- BLS.S Nonextmonth
- SUB.W (A0)+,D0
- ADDQ.B #1,D1
- BRA.S Bouclemois
-
- NoNextmonth:
-
- MOVE.B D1,Mois
- MOVE.B D0,Jour
-
- ; **********************************************************
- ; **** ****
- ; **** Calcul du jour de la semaine ****
- ; **** le 1er Janvier 1978 etait un dimanche ****
- ; **** on calcule le nombre de jours écoulés depuis ****
- ; **** ce jour et on le divise par 7 (= modulo7, voir ****
- ; **** un cours de math...) ****
- ; **** ****
- ; **********************************************************
-
- MOVE.L Sys_sec(pc),D0 ; Nombre de secondes dans D0
- DIVU #3600*12,D0 ; Division par 12*3600
- ANDI.L #$0000FFFF,D0 ; On oublie la virgule
- DIVU #2,D0 ; Division par deux
- ANDI.L #$0000FFFF,D0 ; On oublie la virgule
- ; (Car 24*3600>$FFFF et DIVU)
- ; Ne marche qu'avec des MOTS
- CMP.W #0,D0 ; Si zéro = 1er Janvier 78
- BEQ.S Le_bon_jour ; Aller directement à l'ecriture
- MOVE.L D0,D1 ; Copier D0 dans D1
- DIVU #7,D1 ; Diviser D1 par 7 (= 1 semaine)
- ANDI.L #$0000FFFF,D1 ; Oublier la virgule
- MULU #7,D1 ; Multiplier par 7
- SUB.W D1,D0 ; Soustraire D1 de D0
-
- Le_bon_Jour:
-
- MOVE.B D0,Jour_semaine
- RTS
-
- ; **** Fin de la partie calcul ****
-
- ;*** Ouverture de la Dos.library ***
-
- OpenDos:
-
- MOVE.L Execbase,A6 ; Met adresse Execbase dans A6
- MOVE.L #Dosname,A1 ; Met nom librairie dans A1
- MOVE.L #0,D0 ; Met valeur 0 dans D0
- JSR OpenLibrary(A6) ; Routine interne -> ouverture Dos.lib
- RTS ; Retour boucle
-
- ; *** Ouverture d'une fenetre Dos ***
-
- OpenWin:
-
- MOVE.L Dosbase(pc),A6 ; Met adresse dos.lib dans A6
- MOVE.L #Fenetre,D1 ; Met preferences fenet. dans D1
- MOVE.L #Mode_Newfile,D2 ; Fenetre= nouvel objet (1006)
- JSR Open(A6) ; Routine Dos (-$001E)
- RTS
-
- ; **** Ecriture dans la fenetre ****
- ; **** de la date et de l'heure ****
-
- EcritDateHeure:
-
- ; ******************************************
- ; *** ***
- ; *** Regarder si 'Bonjour' ou 'Bonsoir' ***
- ; *** c'est à dire s'il est plus ou ***
- ; *** moins que 18 heures ***
- ; *** ***
- ; ******************************************
-
- MOVE.B Heures(pc),D0 ; Mettre l'heure dans D0
- CMP.B #18,D0 ; Comparer avec 18
- BMI.S Bonjour ; Si moins que 18 aller à bonjour
- MOVE.L #Bonsoi,D2 ; Sinon adresse de bonsoi dans D2
- BRA.S Salutations ; Et brancher à salutations
-
- Bonjour:
-
- MOVE.L #Bonjou,D2 ; Adresse de bonjou dans D2
-
- Salutations: ; Affiche Bonjour ou Bonsoir
-
- MOVE.L Dosbase(pc),A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #9,D3 ; 8 lettres + retour du chariot
- JSR Write(A6)
- JSR Retour_chariot(pc)
- ; Affiche "Il est "
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #Il_est,D2
- MOVE.L #7,D3 ; 7 caractères
- JSR Write(A6)
- ; Affiche l'heure
- CLR.L D1
- MOVE.B Heures(pc),D1
- JSR Convert_Chiffre(pc)
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #Tamponchiffre,D2
- JSR Write(A6)
- ; Ajoute un espace
- JSR Espace(pc)
- ; Affiche "Heures et "
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #Heures_et,D2
- MOVE.L #10,D3
- JSR Write(A6)
- ; Affiche les minutes
- CLR.L D1
- MOVE.B Minutes(pc),D1
- JSR Convert_Chiffre(pc)
-
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #Tamponchiffre,D2
- JSR Write(A6)
- ; Affiche "Minutes"
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #Minutes2,D2
- MOVE.L #9,D3
- JSR Write(A6)
- JSR Retour_Chariot(pc)
-
- ; Affiche "Nous sommes le "
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #nous_sommes_le,D2
- MOVE.L #15,D3
- JSR Write(A6)
- ; Affiche le nom du jour
- LEA Longueur_des_jours(pc),A0
- MOVE.L #Nom_des_jours,D2
- CLR.L D1
- MOVE.B Jour_semaine(pc),D1
- CMP.B #0,D1
- BEQ.S Affiche_jour
- SUBQ.B #1,D1
-
- Boucle_des_jours:
-
- MOVE.B (A0)+,D4
- ADD.L D4,D2
- DBF D1,Boucle_des_jours
-
- Affiche_jour:
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- CLR.L D3
- MOVE.B (A0),D3
- JSR Write(A6)
-
- JSR Espace(pc)
- ; Affiche le chiffre du jour
- CLR.L D1
- MOVE.B Jour(pc),D1
- CMP.B #1,D1
- BEQ.L Le_premier
- JSR Convert_Chiffre(pc)
-
- Affiche_chiffre_jour:
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #Tamponchiffre,D2
- JSR Write(A6)
-
- JSR Espace(pc)
- ; Affiche le nom du mois
- CLR.L D1
- MOVE.B Mois(pc),D1
- SUBQ.B #1,D1
- LEA Longueur_des_mois(pc),A0
- CLR.L D3
- ADD.B (A0,D1),D3 ; Longueur du mois actuel en caract.
- MOVE.L #Nom_des_mois,D2
- CMP.B #0,D1
- BEQ.S Ecrit_mois
- LEA Longueur_des_mois(pc),A0
- SUBQ.B #1,D1
-
- Boucle3:
- MOVE.B (A0)+,D4
- ADD.L D4,D2
- DBF D1,Boucle3
-
- Ecrit_mois:
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- JSR Write(A6)
- JSR Espace(pc)
-
- ; Affiche l'annee actuelle
- CLR.L D1
- MOVE.W Annee(pc),D1
- JSR Convert_chiffre(pc)
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #Tamponchiffre,D2
- JSR Write(A6)
-
- JSR Retour_chariot(pc)
-
- ; Affiche une parenthèse
-
- MOVE.B #'(',Tamponcaracteres
- MOVE.L #tamponcaracteres,D2
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #1,D3
- JSR Write(A6)
-
- ; Affiche le jour de l'année
- CLR.L D1
- MOVE.W Quantieme(pc),D1
- CMP.W #1,Quantieme ; Si on est le premier janvier
- BEQ.L Premier_de_lan ; Alors le buffer sera "1er"
- JSR Convert_Chiffre(pc) ; Si non on converti le nombre
- MOVE.B #'è',(A0)+ ; ajoute "ème" au TamponChiffre
- MOVE.B #'m',(A0)+ ; pour avoir XXème jour de l'année
- MOVE.B #'e',(A0)+
- ADDQ.B #3,D3
-
- Affiche_Jour_de_lan:
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #TamponChiffre,D2
- JSR Write(A6)
-
- JSR Espace(pc)
-
- ;MOVE.L Dosbase(pc),A6 ; Dosbase est toujours dans A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #Jour_de_lannee,D2
- MOVE.L #17,D3
- JSR Write(A6)
- JSR Retour_chariot(pc)
-
- RTS
-
- ; **** Partie contenant les données pour l'écriture ****
- ; **** de la date et de l'heure ****
-
- Nom_des_mois:
- DC.B 'JanvierFévrierMarsAvrilMaiJuinJuilletAoût'
- DC.B 'SeptembreOctobreNovembreDécembre'
-
- Longueur_des_mois:
- DC.B 7,7,4,5,3,4,7,4,9,7,8,8
-
- Nom_des_jours:
- DC.B 'DimancheLundiMardiMercrediJeudiVendrediSamedi'
-
- Longueur_des_jours:
- DC.B 8,5,5,8,5,8,6
-
- Bonjou:
- DC.B 10,'Bonjour',10
-
- Bonsoi:
- DC.B 10,'Bonsoir',10
-
- Il_est:
- DC.B 'Il est '
-
- Heures_et:
- DC.B 'Heures et '
-
- Minutes2:
- DC.B ' Minutes',10
-
- Nous_sommes_le:
- DC.B "Nous sommes le "
-
- Jour_de_lannee:
- DC.B "jour de l'année)",10
-
-
-
- ; **** Fin de la partie d'affichage de la Date et de l'Heure ****
-
- ; **** Petites sous-routines utiles pour l'affichage à l'écran ***
-
- EVEN
- Le_premier:
- LEA TamponChiffre(pc),A0
- MOVE.L #'1er',(A0)+
- MOVE.L #4,D3 ; 4 car un caractere zéro subsiste
- ; au début du MOT LONG
- BRA.L Affiche_Chiffre_jour
-
- Premier_de_lan:
- LEA TamponChiffre(pc),A0
- MOVE.L #'1er',(A0)+
- MOVE.L #4,D3 ; 4 car un caractere zéro subsiste
- ; au début du MOT LONG
- BRA.L Affiche_jour_de_lan
-
-
- Retour_chariot:
- MOVE.B #$A,Tamponcaracteres
- MOVE.L #tamponcaracteres,D2
- MOVE.L WinHandle(pc),D1
- MOVE.L #1,D3
- MOVE.L Dosbase(pc),A6 ; On laisse l'instruction car on
- ; ignore si Dosbase est dans A6
- ; lors de son appel
- JSR Write(A6)
- RTS
-
- Espace:
- MOVE.B #$20,Tamponcaracteres
- MOVE.L #tamponcaracteres,D2
- MOVE.L WinHandle(pc),D1
- MOVE.L #1,D3
- MOVE.L Dosbase(pc),A6 ; Idem (voir plus haut)
- JSR Write(A6)
- RTS
-
- TamponCaracteres:
- DC.L 0
-
- ; **** Fin des sous-routines d'affichage ****
-
- ; **** Affichage de "Fete(s) d'aujourd'hui:" ****
-
- Ecrit_aujourd:
- MOVE.L Dosbase(pc),A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #Fete_aujourd,D2
- MOVE.L #23,D3
- JSR Write(A6)
- RTS
-
- Fete_aujourd:
- DC.B "Fête(s) d'aujourd'hui:",10
-
- ; **** Affichage de "Demain:" ****
-
- EVEN
- Ecrit_demain:
- MOVE.L Dosbase(pc),A6
- MOVE.L WinHandle(pc),D1
- MOVE.L #Fete_demain,D2
- MOVE.L #8,D3
- JSR Write(A6)
- RTS
-
- Fete_demain:
- DC.B 'Demain:',10
-
-
- ; **********************************************************
- ; **** ****
- ; **** Routine de conversion d'un nombre Hexadécimal ****
- ; **** En décimal "affichable" à l'écran (ASCII) ****
- ; **** Le chiffre en Hexa (<9999) doit etre dans D1 ****
- ; **** En retour on aura le résultat dans TamponChiffre ****
- ; **** Et la longeur en caractères dans D3 ****
- ; **** ****
- ; **********************************************************
-
- Convert_Chiffre:
-
- BCLR #0,Flag
- LEA TamponChiffre(pc),A0
- CLR.L D3
-
- CMP.W #999,D1
- BLS.S Moins_de_mille
-
- BSET #0,Flag
- DIVU #1000,D1
- ADD.B #$30,D1
- MOVE.B D1,(A0)+
- ADD.B #1,D3
- MOVE.W #0,D1
- SWAP D1
-
- Moins_de_mille:
-
- CMP.W #99,D1
- BLS.S Moins_de_cent
-
- BSET #0,Flag
- DIVU #100,D1
- ADD.B #$30,D1
- MOVE.B D1,(A0)+
- ADD.B #1,D3
- MOVE.W #0,D1
- SWAP D1
- BRA.S Moins_de_cent2
-
- Moins_de_cent:
-
- BTST #0,Flag
- BEQ.S Moins_de_cent2
- MOVE.B #$30,(A0)+
- ADD.B #1,D3
-
- Moins_de_cent2:
-
- CMP.B #9,D1
- BLS.S Moins_de_dix
-
- DIVU #10,D1
- ADD.W #$30,D1
- MOVE.B D1,(A0)+
- SWAP D1
- ADD.W #$30,D1
- MOVE.B D1,(A0)+
- ADD.B #2,D3
- RTS
-
- Moins_de_dix:
-
- BTST #0,Flag
- BEQ.S Moins_de_dix2
- MOVE.B #$30,(A0)+
- ADD.B #1,D3
-
- Moins_de_dix2:
-
- ADD.W #$30,D1
- MOVE.B D1,(A0)+
- ADD.B #1,D3
- RTS
-
- Flag:
- DC.B 0
-
- EVEN
- TamponChiffre:
- DC.L 0,0
-
-
- ; **********************************************************
- ; **** ****
- ; **** Fin de la routine de conversion Hexa -> Déci ****
- ; **** ****
- ; **********************************************************
-
-
- Affichefete:
-
- LEA Fete(pc),A0 ; Charge l'adresse de fete dans A0
- MOVE.B Jour(pc),D0 ; Numéro du jour dans D0
- MOVE.B Mois(pc),D1 ; Numéro du mois dans D1
- CLR.L D3
-
- Boucle1:
-
- MOVE.B (A0)+,D3 ; Transfert contenu de A0 dans D3
- CMP.B #$FF,D3 ; D3 = $FF?
- BEQ.S Sort_fete
- CMP.B #31,D3 ; Si D3>31 il s'agit de texte donc on continue
- BGT.S Boucle1
- CMP.B D0,D3 ; Comparer le jour
- BNE.S Boucle1 ; Si différent passer à l'octet suivant
- MOVE.B (A0)+,D3 ; Transfert contenu de A0 dans D3
- CMP.B D1,D3 ; Comparer le mois
- BNE.S Boucle1 ; Si différent recommencer
-
- ; routine d'affichage
-
- pmgs:
- MOVE.L A0,Buffer ; On se rappelle de l'adresse
- MOVE.L A0,D2 ; Adresse de début de texte
- CLR.L D3 ; Mettre D3 à 0
-
- ploop:
- CMP.B #31,(A0)+ ; Si <= à 31 alors c'est la marque d'une date
- BLS.S pmgs2 ; Donc on va écrire le message courant
- ADDQ.L #1,D3 ; Sinon ajouter 1 caractère au compteur D3
- CMP.B #$FF,(A0) ; Fin de la liste? (utile seulement pour 31 Déc)
- BEQ pmgs2 ; Si oui écrire message courant
- BRA.S ploop ; Sinon on continue la lecture
-
- pmgs2:
- MOVE.L dosbase(pc),A6
- MOVE.L Winhandle(pc),D1
- JSR Write(A6)
- JSR Retour_chariot(pc)
-
- MOVE.B Jour(pc),D0 ; On reprend la valeur du jour
- MOVE.B Mois(pc),D1 ; On reprend la valeur du mois
- MOVE.L Buffer(pc),A0 ; On recommence là où on avait arrete
- BRA.S Boucle1
-
- Sort_fete:
- RTS
-
- ; **********************************************************
- ; **** ****
- ; **** Cette routine calcule le numéro du jour et du ****
- ; **** mois qui suit. Ex: 2 Juillet => 3 Juillet ****
- ; **** 28 Février => 1er Mars ou 29 Février etc, etc... ****
- ; **** ****
- ; **********************************************************
-
- Jour_suivant:
-
- MOVE.B Jour(pc),D0
- MOVE.B Mois(pc),D1
- SUBQ.B #1,D1
- MULU #2,D1
- LEA Jours_du_mois(pc),A0
- MOVE.W (A0,D1),D2
- CMP.B D2,D0 ; Est-on le dernier jour du mois?
- BNE.S OK_jour ; Si non, simplement ajouter 1 au jour
- MOVE.B #1,jour ; Si oui, mettre 1 dans jour
- CMP.B #12,Mois ; Est-on en Décembre?
- BEQ.S Janvier ; Si oui, le mois prochain est Janvier
- ADDQ.B #1,Mois ; Si non, ajouter 1 au mois
- RTS
-
- Janvier:
- MOVE.B #1,Mois ; Mettre 1 dans Mois
- RTS
-
- OK_jour:
- ADDQ.B #1,Jour ; Mettre 1 dans Jour
- RTS
-
- ; **** Routine d'attente de quatre secondes ****
- ; **** Elle est utile sous SEKA mais doit etre ****
- ; **** otée de la version CLI (l'affichage ****
- ; **** restera ecrit dans la fenetre CLI ****
-
- Pause:
-
- MOVE.L Dosbase(pc),A6
- MOVE.L #200,D1
- JSR Delay(A6)
- RTS
-
- ERREUR:
- illegal ; Remplacer ILLEGAL par RTS avant de compiler
- ; pour un exécutable sous CLI sinon il y
- ; aura une erreur logicielle...
-
- ; *** Fermeture fenetre Dos ***
-
- CloseWin:
-
- MOVE.L WinHandle(pc),D1 ; Met adresse fenetre dans D1
- MOVE.L Dosbase(pc),A6 ; Met adresse Dos.lib dans A6
- JSR Close(A6) ; Routine Dos, ferme fenetre
-
- ; *** Fermeture de la Dos.Library ***
-
- CloseDos:
-
- MOVE.L Execbase,A6 ; Met adresse Execbase dans A6
- MOVE.L Dosbase(pc),A1 ; Met adresse dosbase dans A1
- JSR CloseLibrary(A6) ; Routine interne, ferme dos.lib
-
- ; **** Fermeture de Intuition.Library ****
-
- CLOSEINTLIB:
-
- MOVE.L Execbase,A6
- MOVE.L IntBase(pc),A1
- JSR Closelibrary(A6)
-
- Fin_du_programme:
- illegal ; Remplacer ILLEGAL par RTS avant de compiler
- ; pour un exécutable sous CLI sinon il y
- ; aura une erreur logicielle...
-
- ; ***** Partie des données *****
-
- ; *** On place d'abord les MOTS LONGS et les MOTS pour ***
- ; *** ne pas se retrouver avec des adresses paires ***
-
- Buffer:
- DC.L 0
-
- WinHandle:
- DC.L 0
-
- Intbase:
- DC.L 0
-
- Dosbase:
- DC.L 0
-
- Sys_sec:
-
- DC.L 0
-
- Sys_microSec:
-
- DC.L 0
-
- SecAn:
-
- DC.L 0
-
- Jours_du_mois:
- DC.W 31,28,31,30,31,30,31,31,30,31,30,31
-
- Annee:
- DC.W 0
-
- Quantieme:
- DC.W 0
-
- Jour_Semaine:
- DC.B 0
-
- Fenetre:
- DC.B 'CON:10/10/600/180/Fenetre',0
-
- ; coords coin haut-gauche, largeur, hauteur, titre
- ; Remplacer par DC.B '*',0 pour obtenir l'affichage
- ; dans la fenetre CLI
-
- IntName:
- DC.B "intuition.library",0
-
- DosName:
- DC.B "dos.library",0
-
- Mois:
- DC.B 0
-
- Jour:
- DC.B 0
-
- Heures:
- DC.B 0
-
- Minutes:
- DC.B 0
-
- Secondes:
- DC.B 0
-
- ; **********************************************************
- ; **** ****
- ; **** Cette partie contient les données de tous les ****
- ; **** jours de l'année sous forme de JJ,MM,'Message' ****
- ; **** L'ordre importe peu mais par commodité j'ai ****
- ; **** préféré avoir recours à un tri alphabétique ****
- ; **** On peut rajouter autant de messages que l'on ****
- ; **** veut si l'on respecte le format JJ,MM,'Message' ****
- ; **** ****
- ; **** Ex: 03,10,'Anniversaire de Patricia!' ****
- ; **** 30,12,'Envoyer une carte de voeux à Céline' ****
- ; **** ****
- ; **** Tout est possible pourvu que les messages soient ****
- ; **** assez brefs ****
- ; **** Ne pas enlever le DC.B $FF qui se trouve à la ****
- ; **** fin car il s'agit d'un repère utilisé par la ****
- ; **** routine affichefete (sinon catastrophe probable) ****
- ; **** ****
- ; **********************************************************
-
- Fete:
-
- ; Format des données: Jour,mois,'Prénom/Message'
- ; Pour les longs textes aller à la ligne et
- ; remettre DC.B JJ,MM,'...suite du message...'
- ; (voir par exemple le 05,10)
-
- DC.B 01,01,"Jour de l'An, Bonne année!!!"
- DC.B 01,02,'Ella'
- DC.B 01,03,'Albin, Aubin'
- DC.B 01,04,'Hugues'
- DC.B 01,05,'Fête du travail'
- DC.B 01,06,'Justin, Pamela'
- DC.B 01,07,'Aaron, Esther, Thierry'
- DC.B 01,08,'Alphonse, Alphonsine'
- DC.B 01,09,'Gilles, Josué, Ruth'
- DC.B 01,10,"Thérèse de l'E.J., Ariel(le)"
- DC.B 01,11,'Toussaint, Adam, Daphné, Hector'
- DC.B 01,11,'Horace, Mathurin(e), Pénélope'
- DC.B 01,12,'Florence, Éloi'
- ; les 01 sonts complets
-
- DC.B 02,01,'Basile, Jésus'
- DC.B 02,02,'Présentation'
- DC.B 02,03,'Charles le B.'
- DC.B 02,04,'Sandrine'
- DC.B 02,05,'Athanase, Boris, Zoé'
- DC.B 02,06,'Blandine, Vital'
- DC.B 02,07,'Martinien'
- DC.B 02,08,'Eusèbe, Julien'
- DC.B 02,09,'Ingrid'
- DC.B 02,10,'Léger'
- DC.B 02,11,'Défunts'
- DC.B 02,12,'Viviane'
- ; les 02 sont complets
-
- DC.B 03,01,'Geneviève'
- DC.B 03,02,'Anatole, Blaise, Oscar'
- DC.B 03,03,'Guénolé'
- DC.B 03,04,'Richard'
- DC.B 03,05,'Philippe, Philippine'
- DC.B 03,06,'Kévin'
- DC.B 03,07,'Thomas'
- DC.B 03,08,'Lydie'
- DC.B 03,09,'Grégoire'
- DC.B 03,10,'Candide, Gérard(ine)'
- DC.B 03,11,'Hubert(e)'
- DC.B 03,12,'Xavier(ère)'
- ; les 03 sont complets
-
- DC.B 04,01,'Odilon'
- DC.B 04,02,'Bérénice, Véronique'
- DC.B 04,03,'Casimir, Humbert'
- DC.B 04,04,'Alette, Isidore'
- DC.B 04,05,'Sylvain(e), Sylvette, Sylviane'
- DC.B 04,06,'Clotilde'
- DC.B 04,07,'Bertha, Berthe, Florent, Florian, Éliane'
- DC.B 04,08,'J.M. Vianney'
- DC.B 04,09,'Iris, Moïse, Rosalie'
- DC.B 04,10,"France, Francine, Francis(que), François d'Ass., Franck"
- DC.B 04,11,'Carole, Caroline, Charles'
- DC.B 04,12,'Barbara, Barbe, Barberine'
- ; les 04 sont complets
-
- DC.B 05,01,'Édouard'
- DC.B 05,02,'Agathe'
- DC.B 05,03,'Olive'
- DC.B 05,04,'Irène'
- DC.B 05,05,'Ange, Angélique, Judith'
- DC.B 05,06,'Boniface, Igor, Ophélie'
- DC.B 05,07,'Anthony, Antoine(tte), Antonin'
- DC.B 05,08,'Abel, Oswald'
- DC.B 05,09,'Raïssa'
- DC.B 05,10,'Capucine, Fleur, Marjolaine, Myrtille, Pervenche'
- DC.B 05,10,'Placide, Prune, Violette'
- DC.B 05,11,'Sylvie, Zacharie'
- DC.B 05,12,'Gérald(ine)'
- ; les 05 sont complets
-
- DC.B 06,01,'Mélaine, Balthazar, Tiphaine'
- DC.B 06,02,'Dora, Doris, Dorothée, Gaston'
- DC.B 06,03,'Colette'
- DC.B 06,04,'Marcellin(e)'
- DC.B 06,05,'Prudence'
- DC.B 06,06,'Norbert'
- DC.B 06,07,'Mariette'
- DC.B 06,08,'Transfiguration'
- DC.B 06,09,'Bertrand(e), Eve, Évangéline, Évelyne'
- DC.B 06,10,'Bruno'
- DC.B 06,11,'Bertille, Léonard'
- DC.B 06,12,'Colas, Colin, Nicolas, Nicole'
- ; les 06 sont complets
-
- DC.B 07,01,'Cédric, Raymond(e), Virginie'
- DC.B 07,02,'Eugène, Eugénie'
- DC.B 07,03,'Félicie, Félicité'
- DC.B 07,04,'J-B de la S.'
- DC.B 07,05,'Gisel(l)e'
- DC.B 07,06,'Gilbert(e)'
- DC.B 07,07,'Ralph, Raoul'
- DC.B 07,08,'Gaetan(e)'
- DC.B 07,09,'Gina, Reine, Régine'
- DC.B 07,10,'Gustave, Serge, Sergine'
- DC.B 07,11,'Carine, Ernest(ine), Karine'
- DC.B 07,12,'Ambre, Ambroise'
- ; Les 07 sont complets
-
- DC.B 08,01,'Gudule, Lucien(ne)'
- DC.B 08,02,'Jacqueline'
- DC.B 08,03,'Jean de D.'
- DC.B 08,04,'Julie, Walter'
- DC.B 08,05,'Victoire 1945, Désiré(e)'
- DC.B 08,06,'Médard'
- DC.B 08,07,'Edgar(d), Thibault'
- DC.B 08,08,'Dominique'
- DC.B 08,09,'Nativité N.D., Adrien(ne)'
- DC.B 08,10,'Morgan(e), Pélagie, Sibylle'
- DC.B 08,11,'Geoffroy, Godefroy'
- DC.B 08,12,'Immaculée Conception'
- ; les 08 sont complets
-
- DC.B 09,01,'Alix'
- DC.B 09,02,'Apolline, Apollon'
- DC.B 09,03,'Françoise'
- DC.B 09,04,'Gautier'
- DC.B 09,05,'Pacôme'
- DC.B 09,06,'Diane, Ephrem'
- DC.B 09,07,'Amandine, Hermin(i)e, Irma, Marianne'
- DC.B 09,08,'Amour'
- DC.B 09,09,'Alain'
- DC.B 09,10,'Denis, Sally, Sarah'
- DC.B 09,11,'Théodora, Théodore'
- DC.B 09,12,'P. Fourier'
- ; les 09 sont complets
-
- DC.B 10,01,'Guillaume(tte), William'
- DC.B 10,02,'Arnaud, Arnold, Arnould'
- DC.B 10,03,'Anastase, Anastasie, Vivien'
- DC.B 10,04,'Fulbert'
- DC.B 10,05,'Solange'
- DC.B 10,06,'Landry'
- DC.B 10,07,'Ulla, Ulrich'
- DC.B 10,08,'Laure, Laurence, Laurent'
- DC.B 10,09,'Inès'
- DC.B 10,10,'Ghislain(e), Virgile'
- DC.B 10,11,'Lionel, Léon(e), Léonie, Léontine, Noé'
- DC.B 10,12,'Romaric'
- ; les 10 sont complets
-
- DC.B 11,01,'Paulin(e), Hortense'
- DC.B 11,02,'N-D de Lourdes'
- DC.B 11,03,'Rosine'
- DC.B 11,04,'Stanislas'
- DC.B 11,05,'Estelle, May, Stella, Étoile'
- DC.B 11,06,'Barnabé'
- DC.B 11,07,'Benoit(e), Olga'
- DC.B 11,08,'Claire(tte), Suzanne, Suzette, Suzon'
- DC.B 11,09,'Adelphe'
- DC.B 11,10,'Firmin'
- DC.B 11,11,'Armistice 14-18'
- DC.B 11,12,'Daniel(le)'
- ; les 11 sont complets
-
- DC.B 12,01,'César(ine), Tania, Tatiana'
- DC.B 12,02,'Félicien(ne), Félix'
- DC.B 12,03,'Justine, Maximilien(ne)'
- DC.B 12,04,'Jules'
- DC.B 12,05,'Achille'
- DC.B 12,06,'Guy'
- DC.B 12,07,'Oliva, Olivia, Olivier'
- DC.B 12,08,'Clarisse'
- DC.B 12,09,'Apollinaire'
- DC.B 12,10,'Séraphin(e), Wilfried'
- DC.B 12,11,'Christian(e), Tristan'
- DC.B 12,12,'Jeanne F., Chantal, Corentin(e)'
- ; les 12 sont complets
-
- DC.B 13,01,'Hilaire, Yvette'
- DC.B 13,02,'Béatrice, Jordan'
- DC.B 13,03,'Rodrigue'
- DC.B 13,04,'Ida'
- DC.B 13,05,'Rolande'
- DC.B 13,06,'Antoine de P.'
- DC.B 13,07,'Henri(ette), Joël(le)'
- DC.B 13,08,'Hippolyte, Philomène'
- DC.B 13,09,'Aimé'
- DC.B 13,10,'Géraud'
- DC.B 13,11,'Brice, Diego'
- DC.B 13,12,'Josselin(e), Luce, Lucie'
- ; les 13 sont complets
-
- DC.B 14,01,'Nina'
- DC.B 14,02,'Adolphe, Valentin(e)'
- DC.B 14,03,'Mahaut, Mathilde'
- DC.B 14,04,'Max, Maxime, Maximin'
- DC.B 14,05,'Aglaé, Mathias'
- DC.B 14,06,'Élisée, Valère, Vassili'
- DC.B 14,07,'Fête Nationale, Camille'
- DC.B 14,08,'Evrard'
- DC.B 14,09,'La Sainte Croix'
- DC.B 14,10,'Calixte, Calliste, Juste'
- DC.B 14,11,'Sidoine, Sidonie'
- DC.B 14,12,'Odile'
- ; les 14 sont complets
-
- DC.B 15,01,'Amalric, Amaury, Rachel, Rémi'
- DC.B 15,02,'Claude(tte), Claudie, Claudine, Faust(a), Faustin(e)'
- DC.B 15,03,'Louise'
- DC.B 15,04,'Paterne'
- DC.B 15,05,'Denise'
- DC.B 15,06,'Germaine'
- DC.B 15,07,'Bonaventure, Donald, Wladimir'
- DC.B 15,08,'Assomption, Alfred, Aufray, Maria, Marie, Marielle, Marion'
- DC.B 15,08,'Maryline, Mireille, Muriel(le), Myriam, Napoléon'
- DC.B 15,09,'Dolorès, Roland'
- DC.B 15,10,'Tessie, Thérèse'
- DC.B 15,11,'Albert(e), Albertine, Arthur, Aubert, Léopold(ine)'
- DC.B 15,12,'Ninon'
- ; les 15 sont complets
-
- DC.B 16,01,'Marcel'
- DC.B 16,02,'Julienne'
- DC.B 16,03,'Bénédicte'
- DC.B 16,04,'Benoît-J.'
- DC.B 16,05,'Honorat, Honoré'
- DC.B 16,06,'Aurore, Aurèle, Aurélie, Aurélien(ne), Réginald, Régis, Réjane'
- DC.B 16,07,'Carmen, Elvire'
- DC.B 16,08,'Armel(le), Roch'
- DC.B 16,09,'Abondance, Corneille, Cornélie, Cyprien(ne), Édith'
- DC.B 16,10,'Edwige'
- DC.B 16,11,'Daisy, Gertrude, Magali, Maggy'
- DC.B 16,11,'Margaret, Marguerite, Peggy, Rita'
- DC.B 16,12,'Adelaïde, Alice, Alicia, Aliette, Alizon'
- ; les 16 sont complets
-
- DC.B 17,01,'Roseline, Yolande'
- DC.B 17,02,'Alexis, Chloé'
- DC.B 17,03,'Patrice, Patricia, Patrick'
- DC.B 17,04,'Anicet'
- DC.B 17,05,'Paquerette, Pascal(e), Pascaline'
- DC.B 17,06,'Hervé, Isaure, Rainier'
- DC.B 17,07,'Arlette, Charllotte'
- DC.B 17,08,'Hyacinte, Jacinthe'
- DC.B 17,09,'Renaud, Ronald'
- DC.B 17,10,'Baudoin(e)'
- DC.B 17,11,'Babette, Belinda, Bettina, Betty, Elsa'
- DC.B 17,11,'Liliane, Linda, Lise, Élisabeth, Élise'
- DC.B 17,12,'Gaël(le), Judicaël(le), Olympe'
- ; les 17 sont complets
-
- DC.B 18,01,'Prisca'
- DC.B 18,02,'Bernadette'
- DC.B 18,03,'Cyril(le)'
- DC.B 18,04,'Parfait'
- DC.B 18,05,'Cora, Coralie, Corinne, Erik(a), Éric(a)'
- DC.B 18,06,'Léonce'
- DC.B 18,07,'Frédéric, Frédérique'
- DC.B 18,08,'Hélène, Laetitia, Nora, Éléonore'
- DC.B 18,09,'Ariane, Nada, Nadia, Nadine, Nadège, Véra'
- DC.B 18,10,'Gwenael(le), Gwenn, Luc, Lucas, Lucile'
- DC.B 18,11,'Aude'
- DC.B 18,12,'Gatien'
- ; les 18 sont complets
-
- DC.B 19,01,'Marius'
- DC.B 19,02,'Gabin'
- DC.B 19,03,'Joseph(ine), Josette, Josiane, José'
- DC.B 19,04,'Emma'
- DC.B 19,05,'Erwan, Eudes, Yves, Yvon(ne)'
- DC.B 19,06,'Dieudonné, Gervais(e), Romuald'
- DC.B 19,07,'Arsène'
- DC.B 19,08,'Jean Eudes'
- DC.B 19,09,'Amélie, Émilie'
- DC.B 19,10,'René(e)'
- DC.B 19,11,'Tanguy'
- DC.B 19,12,'Urbain'
- ; les 19 sont complets
-
- DC.B 20,01,'Bastien(ne), Fabien(ne), Sébastien(ne)'
- DC.B 20,02,'Aimée, Fabiola'
- DC.B 20,03,'PRINTEMPS, Herbert'
- DC.B 20,04,'Odette'
- DC.B 20,05,'Bernardin'
- DC.B 20,06,'Silvère'
- DC.B 20,07,'Marina, Marin(e), Élie'
- DC.B 20,08,'Bernard, Samantha, Samuel'
- DC.B 20,09,'Davy, Eustache'
- DC.B 20,10,'Adeline'
- DC.B 20,11,'Edmond(e), Edmé(e), Octave, Octavie'
- DC.B 20,12,'Abraham, Isaac, Théophile, Zéphirin(e)'
- ; les 20 sont complets
-
- DC.B 21,01,'Agnès'
- DC.B 21,02,'P. Damien'
- DC.B 21,03,'Clémence'
- DC.B 21,03,'Joyeux anniversaire Christian (mon créateur adoré!!)'
- DC.B 21,04,'Anselme'
- DC.B 21,05,'Constant(in)'
- DC.B 21,06,'ÉTÉ, Gonzague, Rodolphe'
- DC.B 21,07,'Victoire, Victor(ia)'
- DC.B 21,08,'Christophe, Gratien(ne), Grâce'
- DC.B 21,09,'Deborah, Mathieu'
- DC.B 21,10,'Céline, Ursule'
- DC.B 21,11,'Prés. Marie'
- DC.B 21,12,'HIVER'
- ; Les 21 sont complets
-
- DC.B 22,01,'Vincent'
- DC.B 22,02,'Isabeau, Isabelle'
- DC.B 22,03,'Léa'
- DC.B 22,04,'Alexandra, Alexandre, Axel(le), Sacha, Sandra'
- DC.B 22,05,'Émile'
- DC.B 22,06,'Alban(e), Albe'
- DC.B 22,07,'Madeleine, Maud'
- DC.B 22,08,'Fabrice, Symphorien'
- DC.B 22,09,'Maurice(tte)'
- DC.B 22,10,'Salomé, Élodie'
- DC.B 22,11,'Cécile, Sheila'
- DC.B 22,12,'Françoise-Xavière'
- ; les 22 sont complets
-
- DC.B 23,01,'Barnard, Mélanie'
- DC.B 23,02,'Lazare'
- DC.B 23,03,'Rebecca, Victorien(ne)'
- DC.B 23,04,'Fortunat, Georges, Georgette'
- DC.B 23,05,'Didier'
- DC.B 23,06,'Audrey'
- DC.B 23,07,'Brigitte'
- DC.B 23,08,'Rosa, Rose, Rosemonde, Rosette'
- DC.B 23,09,'AUTOMNE, Constance'
- DC.B 23,10,'Jean de C.'
- DC.B 23,11,'Clément(ine), Rachilde'
- DC.B 23,12,'Armand(e)'
- ; les 23 sont complets
-
- DC.B 24,01,'Fr de Sales, Fanchon, Fanny, Timothée'
- DC.B 24,02,'Modeste'
- DC.B 24,03,'Catherine de Su., Kate'
- DC.B 24,04,'Fidèle'
- DC.B 24,05,'Donatien(ne)'
- DC.B 24,06,'Baptiste, Baptistine, Ivan, Jean-Baptiste, Jeannine, Yann, Yannick'
- DC.B 24,07,'Christelle, Christine'
- DC.B 24,08,'Barthélémy'
- DC.B 24,09,'Thècle'
- DC.B 24,10,'Florentin'
- DC.B 24,11,'Flora'
- DC.B 24,12,'Adèle'
- ; les 24 sont complets
-
- DC.B 25,01,'Conv. S.Paul'
- DC.B 25,02,'Roméo'
- DC.B 25,03,'Annonciation, Violaine'
- DC.B 25,04,'Marc, Marceau'
- DC.B 25,05,'Sonia, Sophie'
- DC.B 25,06,'Prosper, Salomon'
- DC.B 25,07,'Jacob, Jacques'
- DC.B 25,08,'Clovis, Héloïse, Louis, Loïc, Ludovic'
- DC.B 25,09,'Hermann'
- DC.B 25,10,'Crépin, Enguerran'
- DC.B 25,11,'Catherine L.'
- DC.B 25,12,'Joyeux Noël!!!'
- DC.B 25,12,'Emmanuel(le), Manuel(le)'
- ; les 25 sont complets
-
- DC.B 26,01,'Paule'
- DC.B 26,02,'Nestor'
- DC.B 26,03,'Lara, Larissa'
- DC.B 26,04,'Alida'
- DC.B 26,05,'Béranger(e)'
- DC.B 26,06,'Anthelme'
- DC.B 26,07,'Anaïs, Anita, Anna, Anne, Annette, Annie'
- DC.B 26,07,'Anouchka, Anouck, Joachim, Nanette'
- DC.B 26,08,'Natacha'
- DC.B 26,09,'Côme, Damien'
- DC.B 26,10,'Dimitri, Evariste'
- DC.B 26,11,'Delphin(e)'
- DC.B 26,12,'Steve, Stéphane, Stéphanie, Étienne(tte)'
- ; les 26 sont complets
-
- DC.B 27,01,'Angèle'
- DC.B 27,02,'Honorine, Léandre'
- DC.B 27,03,'Habib'
- DC.B 27,04,'Zita'
- DC.B 27,05,'Augustin'
- DC.B 27,06,'Fernand(e), Ladislas'
- DC.B 27,07,'Céleste, Célestine, Nathalie, Noël(le)'
- DC.B 27,08,'Monique'
- DC.B 27,09,'Vincent de Paul'
- DC.B 27,10,'Émeline'
- DC.B 27,11,'Astrid, Séverin(e)'
- DC.B 27,12,'Jean'
- ; les 27 sont complets
-
- DC.B 28,01,"Thérèse d'Aquin"
- DC.B 28,02,'Romain(e)'
- DC.B 28,03,'Gontran'
- DC.B 28,04,'Valérie(n)'
- DC.B 28,05,'Germain'
- DC.B 28,06,'Irénée'
- DC.B 28,07,'Samson'
- DC.B 28,08,'Augustin(e)'
- DC.B 28,09,'Venceslas, Wenceslas'
- DC.B 28,10,'Simon, Siméon'
- DC.B 28,11,'Jacques d.l.M.'
- DC.B 28,12,'Innocents, Gaspard'
- ; les 28 sont complets
-
- DC.B 29,01,'Gildas'
- DC.B 29,02,'Augusta, Auguste'
- DC.B 29,03,'Gladys, Gwladys, Jonas'
- DC.B 29,04,'Catherine de Si., Huguette'
- DC.B 29,05,'Aymar, Aymon(e)'
- DC.B 29,06,'Paul, Perrine, Pierre(tte), Pétronille'
- DC.B 29,07,'Marthe, Olaf'
- DC.B 29,08,'Sabin(e)'
- DC.B 29,09,'Gabriel(le), Michel(le), Micheline, Michée, Raphaël(le)'
- DC.B 29,10,'Narcisse'
- DC.B 29,11,'Saturnin'
- DC.B 29,12,'David'
- ; les 29 sont complets
-
- DC.B 30,01,'Martin(e)'
- DC.B 30,03,'Amédée, Laura, Lorraine'
- DC.B 30,04,'Pia, Pie, Robert'
- DC.B 30,05,'Ferdinand(e)'
- DC.B 30,06,'Martial'
- DC.B 30,07,'Juliette'
- DC.B 30,08,'Fiacre'
- DC.B 30,09,'Jérôme'
- DC.B 30,10,'Bianca, Bienvenue, Blanche'
- DC.B 30,11,'André(e)'
- DC.B 30,12,'Roger'
- ; les 30 sont complets
-
- DC.B 31,01,'Marcelle'
- DC.B 31,03,'Benjamin(e)'
- DC.B 31,05,'Visitation'
- DC.B 31,07,'Ignace'
- DC.B 31,08,'Aristide'
- DC.B 31,10,'Quentin'
- DC.B 31,12,'Colombe, Sylvestre'
- ; les 31 sont complets
-
- DC.B $FF ; Pour finir les données (ne pas enlever!!!)
-